(function ($){
    let defaltOption={
        method: 'get',
        toolbar: '.toolbar',              	//工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        sortable: true,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                      //初始化加载第一页，默认第一页,并记录
        pageSize: 10,                     //每页的记录行数（*）
        pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
        search: false,                      //是否显示表格搜索
        strictSearch: true,
        showColumns: true,                  //是否显示所有的列（选择显示的列）
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "uuid",                     //每一行的唯一标识，一般为主键列
        showToggle: true,                   //是否显示详细视图和列表视图的切换按钮
        cardView: false,                    //是否显示详细视图
        detailView: false,                  //是否显示父子表
        queryParamsType : "undefined",
        pagination:true,
        responseHandler: function (res) {
            return {
                rows:res.data.rows,
                total:res.data.total,
            };

        },
        queryParams: function(params) { // 请求远程数据时，您可以通过修改queryParams来发送其他参数即server分页时，这里的queryParams参数就是提交到服务器端的参数了
            //补充自定义参数
            return {
                size:params.pageSize,
                page: params.pageNumber,
            };

        },
    },defaltTreeOption={
        toolbar: "#demo-toolbar",    //顶部工具条
        expandColumn : 0,            // 在哪一列上面显示展开按钮
        toolbar: '.toolbar',         //工具按钮用哪个容器
        expandAll:false,
        "parentId":"parent_id",
        url: "",
        type: 'get',
        expandFirst:false
    },locale = {
        "format": 'YYYY-MM-DD',
        "separator": " - ",
        "applyLabel": "确定",
        "cancelLabel": "取消",
        "fromLabel": "起始时间",
        "toLabel": "结束时间'",
        "customRangeLabel": "自定义",
        "weekLabel": "W",
        "daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
        "monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
        "firstDay": 1
    },defaultDateRangeOption={
        'locale': locale,
         ranges: {
            '今日': [moment(), moment()],
            '昨日': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
            '最近7日': [moment().subtract(6, 'days'), moment()],
            '最近30日': [moment().subtract(29, 'days'), moment()],
            '本月': [moment().startOf('month'), moment().endOf('month')],
            '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month')
                .endOf('month')
            ]
        },
        "alwaysShowCalendars": true,
        "opens": "right",
    }


    //扩展jquery组件
    $.fn.extend({

        //销毁table(依赖bootstrap-table)
        destroyTable:function (){
            let self=this;
            self.bootstrapTable("destroy");
            return self;
        },
        //初始化table(依赖bootstrap-table)
        initTable:function (opt){
            //合并默认参数
            let param={},self=this;
            $.extend(param,defaltOption);
            $.extend(param,opt);
            self.bootstrapTable(param);
            return  self;
        },
        //初始化树形table(依赖bootstrap-treetable)
        initTreeTable:function(opt){

            let param={},self=this;
            $.extend(param,defaltTreeOption);
            $.extend(param,opt);
            self.bootstrapTreeTable(param);

        },
        //初始化时间区间组件(依赖jquerydaterangepicker)
        initDateRange:function (opt){
            let param={},self=this;
            $.extend(param,defaultDateRangeOption);
            if(opt){
                $.extend(param,opt);
            }
            self.daterangepicker(param);
        },
        getDateRange:function(){
            let self=this;
            return self.data('daterangepicker')
        }

    });
})(jQuery);

